# 前言
通过之前的需求分析,可以知道整个工程架构是以 GitLab 为底层而搭建的 DevOps 系统,所以需要借助 GitLab 的 Open Api 将两个系统的信息互通串联。
本章将介绍如何使用 Egg 开发 GitLab Api 的工具类,并不涉及具体的业务代码。会对 GitLab 的授权、api 的使用有一个初步的了解,后期可以针对实际的业务需求做个性化定制与调整。
# Gitlab 授权
# 封装基础 GitLab Api 工具类
项目业务部分会通过 GitLab Api 获取对应的用户、项目信息,需要频繁地请求 GitLab Api,可以先将请求方法封装成统一的工具类方便后面使用。
详细的 api 请求方式这里不细说了,想要了解更多细节的同学们可以查看官方文档。
新建 /app/helper/utils/http.ts
const qs = require("qs");
const baseUrl = "https://gitlab.xxxxxx.com"; // 此处替换为你自己的 gitlab 地址
export default (app) => {
return {
async post({url, params = {}, query = {}}) {
const sendUrl = `${baseUrl}${url}?${qs.stringify(query)}`;
try {
const { data, code } = await app.curl(sendUrl, {
dataType: "json",
method: "POST",
data: params,
});
return { data, code };
} catch (error) {
return error;
}
},
async methodV({ url, method, params = {}, query = {} }) {
const sendUrl = `${baseUrl}/api/v4${url}?${qs.stringify(query)}`;
try {
const { data, code } = await app.curl(sendUrl, {
dataType: "json",
method,
data: params,
});
return { data, code };
} catch (error) {
return error;
}
},
};
};
@前端进阶之旅: 代码已经复制到剪贴板
